home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
031-040
/
amok31
/
intuipointer
/
intuipointer.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
79 lines
(*---------------------------------------------------------------------------
:Program. IntuiPointer.mod
:Contents. Prozeduren zum Setzen des Mauszeigers auf 'Busy' (ZZ)
:Author. Bernd Preusing
:Address. Gerhardstr. 16 D-2200 Elmshorn
:Phone. 04121/22486
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.2e
:History. V1.0 08-Oct-89 Bernd Preusing
:Bugs. none
:Remark. Please, create beautiful pointers for me!
---------------------------------------------------------------------------*)
IMPLEMENTATION MODULE IntuiPointer;
FROM SYSTEM IMPORT ADDRESS, ADR, INLINE;
IMPORT Arts, Intuition, Exec;
CONST
POINTERSIZE = (16+2)*2*2; (* never change this! *)
VAR
ZZ: ADDRESS;
StartLevel: INTEGER;
(* $E- *)
PROCEDURE ZZData(); (* I'm busy or tired! *)
BEGIN
INLINE(
00000H,00000H,
03E00H,03E00H,
07FC0H,07FC0H,
043E0H,07FE0H,
0F7E0H,0FFE0H,
0EE10H,0FFF0H,
0C3B0H,0FFF0H,
07F70H,07FF0H,
07E10H,07FF0H,
03FE0H,03FE0H,
01FC0H,01FC0H,
00020H,00020H,
007E0H,007E0H,
007C0H,007C0H,
00330H,00330H,
00070H,00070H,
00030H,00030H,
00000H,00000H
)
END ZZData;
PROCEDURE Normal(Win:Intuition.WindowPtr);
BEGIN
Intuition.ClearPointer(Win);
END Normal;
PROCEDURE Busy(Win:Intuition.WindowPtr);
BEGIN
Intuition.SetPointer(Win,ZZ,16,16,-7,-7);
END Busy;
PROCEDURE Exit;
BEGIN
IF Arts.CurrentLevel()<=StartLevel THEN
IF ZZ#NIL THEN
Exec.FreeMem(ZZ,POINTERSIZE);
ZZ:=NIL;
END;
END
END Exit;
BEGIN
StartLevel:=Arts.CurrentLevel();
ZZ:=NIL;
Arts.TermProcedure(Exit);
ZZ:=Exec.AllocMem(POINTERSIZE,Exec.MemReqSet{Exec.chip,Exec.public});
Arts.Assert(ZZ#NIL,ADR('no chipmem for Busy Pointer'));
Exec.CopyMem(ADR(ZZData),ZZ,POINTERSIZE);
END IntuiPointer.mod